package com.yc.Testjvm.proxy.demo2;

import java.lang.reflect.Proxy;

public class Test {

	/**
	 * 静态代理实现“延迟加载”
	 * @param args
	 */
	public void testStaticProxy() {
		IDBQuery q = new DBQueryProxy(); // 使用代里
		System.out.println("-------创建虚假类完成1---------------");
		System.out.println("result=" + q.request());// 在真正使用时才创建真实对象
	}
	
	/**
	 * 动态代理实现“延迟加载”
	 */
	public void testDynamicProxy() {
		IDBQuery q = (IDBQuery) Proxy.newProxyInstance(getClass().getClassLoader(), new Class<?>[] {IDBQuery.class}, new DBQueryHandler());
		System.out.println("-------创建虚假类完成2---------------");
		System.out.println("result=" + q.request());// 在真正使用时才创建真实对象
	}
	
	public static void main(String[] args) {
		Test t = new Test();
//		t.testStaticProxy();
		t.testDynamicProxy();
		
	}

}
